<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
  </head>

  <body>
    <script>
      /*
            闭包是一个引用了别的函数的数据的函数
        */

      // function f1() {
      //     let a = 20
      //     function f2() { // f2 引用了f1的数据， f2就形成了闭包
      //         console.log(a);
      //     }
      // }


      /*
          使用闭包 模拟 银行

           -- 数据私有化
      */

      // function bank() {
      //     let money = 0
      //     function cunqian(value) {
      //         if (value > 0) {
      //             money += value
      //             console.log(`存入了${value}元，当前的余额是${money}`);
      //         } else {
      //             console.error('你存入的数额不对')
      //         }
      //     }
      //     return cunqian
      // }

      // let fn = bank()
      // fn(100)
      // fn(-99999)


      // 闭包的变种
      // function bank() {
      //     let moeny = 0
      //     function cun(value) {
      //         moeny += value
      //     }
      //     function qu(value) {
      //         moeny -= qu
      //     }
      //     function chaxun() {
      //         return money
      //     }
      //     return { cun, qu, chaxun }
      // }

      // 闭包的变种
      // function bank() {
      //     let money = 0
      //     return {
      //         cun: function (value) {
      //             money += value
      //         },
      //         qu: function (value) {
      //             money -= value
      //         }
      //     }
      // }
    </script>
  </body>

</html>